package com.guoheng.hazard.sys.service.hazard;

import com.guoheng.hazard.common.base.Result;
import com.guoheng.hazard.sys.model.dto.hazard.MajorHazardExamineDTO;
import com.guoheng.hazard.sys.model.dto.hazard.MajorHazardInfoInsertDTO;
import com.guoheng.hazard.sys.model.dto.hazard.MajorHazardInfoUpdateDTO;

/**
 * 接口描述:　MajorHazardInfoService
 *
 * @author fbl
 * @date 2019-11-15 15:33
 */
public interface MajorHazardInfoService {

    /**
     * 方法功能描述: 查询重大危险信息列表
     *
     * @param entprId       企业id
     * @param pageNum       页码
     * @param pageSize      页面尺寸
     * @param majorHazardNo 重大危险源编号
     * @return Result
     */
    Result getHazardInfo(String majorHazardNo, Long entprId, Integer pageNum, Integer pageSize);

    /**
     * 方法功能描述: 修改重大危险信息列表
     *
     * @param majorHazardInfoUpdateDTO 重大危险源信息
     * @return Result
     */
    Result updateHazardInfo(MajorHazardInfoUpdateDTO majorHazardInfoUpdateDTO);

    /**
     * 方法功能描述: 新增重大危险信息列表
     *
     * @param majorHazardInfoInsertDTO 重大危险源信息
     * @return Result
     */
    Result insertHazardInfo(MajorHazardInfoInsertDTO majorHazardInfoInsertDTO);

    /**
     * 方法功能描述: 删除重大危险信息列表
     *
     * @param id 主键
     * @return Result
     */
    Result deleteHazardInfo(Long id);

    /**
     * 方法功能描述: 查询重大危险信息详情
     *
     * @param id 主键
     * @return Result
     */
    Result getHazardInfoDetail(Long id);


    /**
     * 方法功能描述: 重大危险信息统计
     *
     * @return Result
     */
    Result getHazardInfoStatistics();

    /**
     * 方法功能描述: 首页重大危险信息统计
     *
     * @return Result
     */
    Result getHomePageHazardInfoStatistics();

    /**
     * 方法功能描述: 查询 新增/编辑 所需列表内容
     *
     * @param entprId  企业id
     * @param partType 组成类型
     * @return Result
     */
    Result partUnit(Long entprId, Integer partType);

    /**
     * 方法功能描述: 传感器，摄像头，重大危险源信息
     *
     * @param entprId 企业id
     * @return Result
     */
    Result MajorHazardName(Long entprId);

    /**
     * 方法功能描述: 传感器，摄像头，重大危险源类型
     *
     * @param majorHazardId 重大危险源id
     * @return Result
     */
    Result MajorHazardType(Long majorHazardId);

    /**
     * 方法功能描述: 重大危险源备案
     *
     * @param majorHazardId 重大危险源备案
     * @return Result
     */
    Result MajorHazardFiling(MajorHazardExamineDTO majorHazardId);
}
